Skip to content

Comments

Rewrite kime-wayland, update dependencies, and fix indicator issues#743

Merged
Riey merged 16 commits intoRiey:developfrom
kernalix7:develop
Jan 28, 2026
Merged

Rewrite kime-wayland, update dependencies, and fix indicator issues#743
Riey merged 16 commits intoRiey:developfrom
kernalix7:develop

Conversation

@kernalix7
Copy link
Contributor

Summary

Rewrite kime-wayland for wayland-rs 0.31+ API
Fix KDE Plasma 6.5.5 crashes (KeyState::Repeated handling)
Fix indicator tray icon with tokio async I/O
Update major dependencies
Remove unused dependencies

kime-wayland를 wayland-rs 0.31+ API로 재작성
KDE Plasma 6.5.5 크래시 수정 (KeyState::Repeated 처리)
tokio async I/O로 indicator 트레이 아이콘 오류 수정
주요 의존성 업데이트
사용하지 않는 의존성 삭제

Note

wayland-client 0.29 → 0.31 (Dispatch trait pattern)
ksni 0.2 → 0.3.3 + tokio async
xkbcommon 0.7 → 0.9, xdg 2.5 → 3.0, quick-xml 0.27 → 0.39
Remove zwp-virtual-keyboard (merged into wayland-protocols-misc)

Checklist

  • I have documented my changes properly to adequate places
  • I have updated the docs/CHANGELOG.md

62e56540 input method commit fix
KDE Plasma 6.5.5 upgraded wl_keyboard grab from version 1 to 10,
which introduces KeyState::Repeated (value 2). Previously, kime-wayland
only checked for KeyState::Pressed, causing Repeated events to be
incorrectly treated as Released, leading to crashes.

Changes:
- Handle KeyState::Repeated same as Pressed in input_method_v1/v2
- Only clear repeat timer and state on explicit KeyState::Released
- Update wayland-client/protocols 0.29 → 0.29.5
- Update xkbcommon 0.7.0 → 0.9.0

Fixes intermittent crashes on KDE Plasma 6.5.5
- Replace std::os::unix::net with tokio::net for async Unix socket I/O
- Convert try_terminate_previous_server to async function
- Use tokio::time::timeout for read/write timeouts
- Add assume_sni_available(true) to handle DE initialization timing

This fixes the issue where the tray icon was blank and not updating
on KDE after ksni 0.2 -> 0.3.3 upgrade. The blocking I/O was preventing
the async tray update signals from being processed properly.
- xkbcommon: 0.7.0 → 0.9.0
- wayland-client: 0.29 → 0.29.5
- wayland-protocols: 0.29 → 0.29.5
- itertools: 0.13 → 0.14
- imageproc: 0.25 → 0.26 (with text feature)
- strum: 0.26 → 0.27
- eframe: 0.31 → 0.33
- egui: 0.31 → 0.33
- bindgen: 0.69.4 → 0.72.1
- cbindgen: 0.26.0 → 0.29.2
BREAKING CHANGE: Complete rewrite of kime-wayland for wayland-rs 0.31+

Major changes:
- Migrate from Filter-based to Dispatch trait pattern (wayland-client 0.31)
- Update wayland-protocols to 0.32 with `unstable` feature for v1 protocol
- Add wayland-protocols-misc 0.3 for zwp_input_method_v2 and zwp_virtual_keyboard_v1
- Remove zwp-virtual-keyboard crate (now included in wayland-protocols-misc)
- Unify v1 and v2 input method handling in single state machine

Technical fixes:
- Add event_created_child! macro for ZwpInputMethodV1 opcode 0 (Activate event)
- Fix fd ownership in WlKeyboard::Keymap (wayland-client 0.31 provides OwnedFd directly)
- Handle KeyState::Repeated (wl_keyboard version 10+) for KDE Plasma 6.5.5
- Use Connection-based API instead of Display

Other dependency updates:
- xdg 2.5 -> 3.0 (API change: remove Result from BaseDirectories methods)
- quick-xml 0.27 -> 0.39 (API change: decode_and_unescape_value takes decoder())
@kernalix7
Copy link
Contributor Author

kernalix7 commented Jan 22, 2026

wayland-client 업데이트 완료했습니다.

#740 에서의 이슈사항도 개선했고,
거의 대부분의 의존성 업데이트 및 중단된 crates 삭제 등 완료되었습니다.

#716
@Riey 충분히 테스트 후 릴리즈 해도 괜찮지 않을까 조심스레 여쭤봅니다!

Copy link
Contributor Author

@kernalix7 kernalix7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

review done.

@Riey Riey mentioned this pull request Jan 28, 2026
4 tasks
kernalix7 and others added 3 commits January 28, 2026 16:40
Removed the BREAKING label from the kime-wayland rewrite entry.
Co-authored-by: Riey <creeper844@gmail.com>
@Riey Riey merged commit 0179318 into Riey:develop Jan 28, 2026
4 checks passed
@kernalix7
Copy link
Contributor Author

@Riey 수고하셨습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants